import { useUserStore } from '@/stores'
const whiteList = [
  "/pages/index/index",
  "/pages/goods/list",
  "/pages/bill/index",
  "/pagesub/login/index"
];
const list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
function hasPermission(url, isLogin) {
	// 在白名单中或有token，直接跳转
	if (whiteList.indexOf(url) > -1 || isLogin) {
		return true; // 有权限
	}
	return false; // 无权限
}
/*
uni.addInterceptor 拦截器 第一个参数是触发的对象 第二个参数是配置项
利用循环监听所有的页面跳转方式
*/
list.forEach((item) => {
	uni.addInterceptor(item, {
		// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
		invoke(e) {
			const user = useUserStore()
			// uni.getStorageSync("TOKEN")
			if (!user.isLogin && !hasPermission(e.url, user.isLogin)) {
				// 将用户的目标路径保存下来
				// 这样可以实现 用户登录之后，直接跳转到目标页面
				user.setBeforeLoginUrl(e.url)
				uni.navigateTo({url: "/pagesub/login/index"})
				return false;
			}
			return true;
		}
	});
});